package com.t.bricks.bussiness.db.mapper.loginpast;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.t.bricks.bussiness.db.entity.loginpast.LoginPast;
import com.t.bricks.bussiness.model.loginpast.ConditionLoginPast;
import com.t.bricks.model.OrderInfo;

@Mapper
public interface LoginPastMapper {
	
	/**
	 * 查询搜索用的数据
	 * @param whereStr 查询条件字符串
	 * @param orders 排序数据集合
	 * @return
	 */
	List<LoginPast> findBySearch(
		@Param("whereStr") String whereStr,
		@Param("orders") List<OrderInfo> orders
	);

	/**
	 * 查询导出到文件的数据
	 * @param orders 排序数据集合
	 * @param sLikeStr 全文检索
	 * @param dLikeDateSt 检索的开始时间范围
	 * @param dLikeDateEd 检索的结束时间范围
	 * @param condition 查询条件对象
	 * @return
	 */
	List<LoginPast> findByExport(
		@Param("orders") List<OrderInfo> orders,
		@Param("sLikeStr") String sLikeStr,
		@Param("dLikeDateSt") Date dLikeDateSt,
		@Param("dLikeDateEd") Date dLikeDateEd,
		@Param("condition") ConditionLoginPast condition
	);

	//---------------------------- 自动生成代码结束 ----------------------------//
	
	/**
	 * 取指定时间内签到情况(超级管理员会被排除)
	 * 注意:sName为空则查询所有人(超级管理员还是会被排除)
	 * @param sName
	 * @param dDateSt
	 * @param dDateEd
	 * @return
	 */
	List<LoginPast> findByDay(
		@Param("sName") String sName,
		@Param("dDateSt") Date dDateSt,
		@Param("dDateEd") Date dDateEd
	);
	
	/**
	 * 删除
	 * @Param dDateSt
	 * @Param dDateEd
	 * @return
	 */
	int del(@Param("dDateSt") Date dDateSt, @Param("dDateEd") Date dDateEd);

	/**
	 * 简约方式添加签到日志
	 * @param sNameOrNo 登录者使用的用户名或工号
	 * @return
	 */
	int addLog(@Param("sNameOrNo") String sNameOrNo);
	
}
